import { reqAddOrUpdateShopCart, reqGoodsInfo } from '@/api';
// 生成游客临时身份的工具函数
import { getUUID } from '@/utils/uuid_token';
const state = {
	goodsInfo: {},
	// 游客的临时身份 uuid
	uuid_token: getUUID()
};
const mutations = {
	GETGOODSINFO(state, playload) {
		state.goodsInfo = playload;
	}
};
const actions = {
	// 获取商品详情信息的action
	async getGoodsInfo({ commit }, skuId) {
		let res = await reqGoodsInfo(skuId);
		if (res.code == 200) {
			commit('GETGOODSINFO', res.data);
		}
	},
	/**
	 * 将产品添加到购物车中的action
	 */
	async addOrUpdateShopCart({ commit }, { skuId, skuNum }) {
		let res = await reqAddOrUpdateShopCart(skuId, skuNum);
		// 因为服务器只返回成功或者失败，没有其他信息，所以不用存储数据
		// 但是外界需要知道添加购物车的结果，所以需要向外界返回成功（非空字符串代表成功）或是失败的结果
		if (res.code == 200) {
			return 'ok';
		} else {
			return Promise.reject(new Error('添加失败'));
		}
	}
};
const getters = {
	// 路径导航信息的简化
	categoryView(state) {
		return state.goodsInfo.categoryView || {};
	},
	// 简化产品信息的数据
	skuInfo(state) {
		return state.goodsInfo.skuInfo || {};
	},
	// 简化产品售卖属性的数据
	spuSaleAttrList(state) {
		return state.goodsInfo.spuSaleAttrList;
	}
};

export default {
	state,
	mutations,
	actions,
	getters
};
